Recurring Payments
Tokenise - Phase 1 - Flow diagram
Request
Production Url
UAT Url
QA Url
https://psp.vodacompaymentgateway.co.za/recurringPayment/tokenize
Encryption Xml
Encryption Xml Xsd
Encryption Xml Description

<Transaction>
    <Amount></Amount>
    <Currency></Currency>
    <Password></Password>
    <Username></Username>
    <Identifier></Identifier>
    <TransactionType></TransactionType>
    <PayserverAlias></PayserverAlias>
    <Product>
        <Type></Type>
        <SalesType></SalesType>
        <Reference></Reference>
        <ProductCode></ProductCode>
        <ProductAmount></ProductAmount>
        <ProductDescription></ProductDescription>
    </Product>
    <MerchantReference></MerchantReference>
    <RequestIdentifier></RequestIdentifier>
    <CustomerIdentifier></CustomerIdentifier>
    <MerchantTokenReference></MerchantTokenReference>	
    <MerchantIdentifier></MerchantIdentifier>
    <RecurringAction></RecurringAction>
    <NotifyUrl></NotifyUrl>
    <FailureUrl></FailureUrl>
    <ReturnUrl></ReturnUrl>
    <WebHooks>
        <WebHook>
	    <Template></Template>
	    <Type></Type>
	    <Url></Url>
        </WebHook>
    </WebHooks>
</Transaction>
Form Post

<input type="hidden" name="PayserverUser" id="PayserverUser" value="">
<input type="hidden" name="EncType" id="EncType" value="">
<input type="hidden" name="EncSalt" id="EncSalt" value="">
<input type="hidden" name="EncIterations" id="EncIterations" value="">
<input type="hidden" name="EncIv" id="EncIv" value="">
<input type="hidden" name="EncXml" id="EncXml" value="">
<input type="hidden" name="ReturnUrl" id="ReturnUrl" value="">
<input type="hidden" name="NotifyUrl" id="NotifyUrl" value="">
<input type="hidden" name="FailureUrl" id="FailureUrl" value="">
  
Immediate Response
Transaction Response

<input name="MerchantIdentifier" type="hidden" value="">
<input name="MerchantReference" type="hidden" value="">
<input name="CorrelationIdentifier" type="hidden" value="" data-example="requestIdentifier">
<input name="CustomerIdentifier" type="hidden" value="">
<input name="CardNumber" type="hidden" value="">
<input name="Amount" type="hidden" value="">
<input name="TransactionReference" type="hidden" value="" data-example="TransactionID">
<input name="ErrorCode" type="hidden" value="">
<input name="ErrorDescription" type="hidden" value="">
<input name="BankReference" type="hidden" value="" data-example="RRN">
<input name="BankResponseCode" type="hidden" value="" data-example="isoCode">
<input name="BankResponseDescription" type="hidden" value="" data-example="isoMessage">
<input name="ControlKey" type="hidden" value="">
    
Async Response
Transaction Response
Base64 decoded from the webhookpayload received from the initial payload. Below are the fields that can be sent back to the merchant.

{
  "Type":"RecurringPaymentCallBack",
  "ControlKey":"#ControlKey#",
  "Identifier": "#Identifier#",
  "MerchantReference": "#MerchantReference#",
  "Amount": "#Amount#",
  "RequestIdentifier": "#RequestIdentifier#",
  "TransactionReference": "#TransactionReference#",
  "TransactionId": "#TransactionId#",
  "ErrorDescription": "#ErrorDescription#",
  "ErrorCode": "#ErrorCode#",
  "BankResponseDescription": "#BankResponseDescription#",
  "BankResponseCode": "#BankResponseCode#",
  "TransactionStatus": "#TransactionStatus#",
  "Currency": "#Currency#",
  "SupplierID": "#SupplierID#",
  "Stamp": "#Stamp#",
  "CustomerIdentifier": "#CustomerIdentifier#",
  "MerchantIdentifier": "#MerchantIdentifier#",
  "MaskedCardNumber": "#MaskedCardNumber#",
  "RetrievalReferenceNumber": "#RetrievalReferenceNumber#"
}
    
Post Back
Tokenise Response
This response is async and relys on the bank for a response.

{
  "merchantid": "",
  "tokenstatusid": "",
  "merchanttokenid": "",
  "bankresponsemessage": "",
  "merchanttokenreference": "",
  "merchantcustomerreference": "",
  "tokenstatus": ""
}
    
Payment - Phase 2 - Flow diagram
Request
Production Url
UAT Url
QA Url
https://psp.vodacompaymentgateway.co.za/api/recurring/pay
Encryption Xml
Encryption Xml Xsd

<recurringpayment>
    <merchantid></merchantid>
    <password></password>
    <payserveralias></payserveralias>
    <url></url>
    <payment>
        <amount></amount>
        <currency></currency>
        <ordernumber></ordernumber>
        <merchanttokenid></merchanttokenid>
        <merchantcustomerreference></merchantcustomerreference>
        <product>
            <type></type>
            <code></code>
            <salestype></salestype>
            <reference></reference>
            <description></description>
        </product>
    </payment>
        <payment>
        <amount></amount>
        <currency></currency>
        <ordernumber></ordernumber>
        <merchanttokenid></merchanttokenid>
        <merchantcustomerreference></merchantcustomerreference>
        <merchanttokenreference></merchanttokenreference>
        <product>
            <type></type>
            <code></code>
            <salestype></salestype>
            <reference></reference>
            <description></description>
        </product>
    </payment>
</recurringpayment>
  
API Post

{
  "PayserverUsername": "",
  "EncryptionType": "",
  "EncryptionSalt": "",
  "EncryptionIterations": 0,
  "EncryptionIv": "",
  "EncryptionXml": ""
}
    
Response
Payment Response

{
  "WasSuccessful": true,
  "Message": "",
  "Error": {
    "ErrorCode": "",
    "ErrorDescription": ""
  },
  "Exception": {
    "Message": "",
    "Source": "",
    "StackTrace": "",
    "InnerException": {},
  }
}
    
Post Back
payment Response

{
  "id": "",
  "statusid": "",
  "authcode": "",
  "ordernumber": "",
  "bankresponsemessage": "",
  "retrievalreferencenumber": "",
  "status": ""
}